// 导入createSlice函数
import { createSlice } from "@reduxjs/toolkit";

// 创建一个名为persons的slice
const personSlice = createSlice({
  // slice的名称
  name: "persons",
  // 初始状态
  initialState: {
    // 人员列表
    personList: [
      {
        // 人员id
        id: 1,
        // 人员姓名
        name: "张三",
        // 人员编码
        code: "133333333333333333",
        state: true,
      },
      {
        id: 2,
        name: "李四",
        code: "122222222222222222",
        state: false,
      },
    ],
  },
  // reducer函数
  reducers: {
    // 添加人员
    addPerson(state, action) {
      // 将新的人员添加到人员列表中
      state.personList.push(action.payload);
    },
    // 删除人员
    delPerson(state, action) {
      // 过滤掉id与传入的id相同的人员
      state.personList = state.personList.filter(
        (item) => item.id !== action.payload.id
      );
    },
    // 更新人员
    updatePerson(state, action) {
      // 找到id与传入的id相同的人员
      const item = state.personList.find(
        (item) => item.id === action.payload.id
      );
      // 更新人员信息
      Object.assign(item, action.payload);
    },
    // 切换状态
    switchPersonState(state, action) {
      // 找到id与传入的id相同的人员
      const item = state.personList.find(v => v.id === action.payload.id)

      // 切换人员状态
      item.state = !item.state
    }
  },
});

// 导出slice
export default personSlice;
// 导出slice中的action
export const { addPerson, delPerson, updatePerson, switchPersonState } = personSlice.actions;
